package com.yilizhiyou.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;

/**
 * 语音导览实体类
 * 
 * @author 伊犁智游开发团队
 * @since 1.0.0
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("voice_guide")
public class VoiceGuide extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 景区ID
     */
    @NotNull(message = "景区ID不能为空")
    private Long scenicSpotId;

    /**
     * 导览标题
     */
    @NotBlank(message = "导览标题不能为空")
    @Size(max = 100, message = "导览标题长度不能超过100个字符")
    private String title;

    /**
     * 导览内容
     */
    @NotBlank(message = "导览内容不能为空")
    private String content;

    /**
     * 音频文件URL
     */
    private String audioUrl;

    /**
     * 音频时长（秒）
     */
    private Integer duration;

    /**
     * 语言（zh-CN, en-US, kk-KZ等）
     */
    @NotBlank(message = "语言不能为空")
    @Size(max = 10, message = "语言长度不能超过10个字符")
    private String language;

    /**
     * 语音类型（male, female）
     */
    @Size(max = 20, message = "语音类型长度不能超过20个字符")
    private String voiceType;

    /**
     * 播放次数
     */
    private Integer playCount;

    /**
     * 状态（0-禁用，1-启用）
     */
    private Integer status;
}
